home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Games: 500 MB Amiga Software
/
500 MB Amiga Software - Euber 130 - Amiga Games Disc & Mag.iso
/
userbox
/
publicdomain
/
tinymeter
/
source
/
tinymeter_main
/
volumes.c
< prev
Wrap
C/C++ Source or Header
|
1995-09-09
|
4KB
|
111 lines
#include "includes.h"
char *LoadedVolList[64],
*LoadedVolList_1[64];
UBYTE numofvols;
extern ULONG all_o_ram[32],
bas_o_ram[32],
act_o_ram[32];
loadvols()
{
UBYTE *my_file;
int i=0;
char temp_str[64];
numofvols=0;
my_file=(UBYTE *)Open("ENV:TinyMeter_Volumes",MODE_OLDFILE);
if(my_file)
{
while( FGets(my_file,&temp_str[0],64L) )
{
temp_str[63]=0;
LoadedVolList[numofvols] =(char *)malloc(64L);
LoadedVolList_1[numofvols]=(char *)malloc(64L);
i=0;
while(temp_str[i]!=0)
{
if(temp_str[i]==10)
{
temp_str[i]=0;
break;
}
i++;
}
strcpy((char *)LoadedVolList[numofvols],(char *)&temp_str[0]);
strcpy((char *)LoadedVolList_1[numofvols],(char *)&temp_str[0]);
LoadedVolList_1[numofvols][my_strlen(LoadedVolList_1[numofvols])-1]=0;
numofvols++;
}
LoadedVolList[numofvols]=0L;
LoadedVolList_1[numofvols]=0L;
Close(my_file);
}
}
freevols()
{
ULONG df=0L;
while(LoadedVolList[df]>0L)
{
free(LoadedVolList[df]);
free(LoadedVolList_1[df]);
df++;
}
}
getvolsizes(int what)
{
int k;
struct InfoData inf;
struct DevProc *devproc;
struct DosList *dl=0;
if(dl = (struct DosList *)LockDosList(LDF_VOLUMES|LDF_DEVICES|LDF_READ));
{
for(k=0;k<numofvols;k++)
{
if(FindDosEntry(dl,LoadedVolList_1[k],LDF_VOLUMES|LDF_DEVICES))
{
if(devproc=(struct DevProc *)GetDeviceProc(LoadedVolList[k],NULL))
{
if( DoPkt(devproc->dvp_Port,ACTION_DISK_INFO,MKBADDR(&inf),NULL,NULL,NULL,NULL)==DOSTRUE)
{
switch(inf.id_DiskType)
{
case ID_UNREADABLE_DISK:
case ID_NOT_REALLY_DOS:
case ID_NO_DISK_PRESENT:
act_o_ram[k]=0;
bas_o_ram[k]=0;
all_o_ram[k]=0;
break;
default:
switch(what)
{
case 0:
act_o_ram[k]=(inf.id_NumBlocks-inf.id_NumBlocksUsed)*inf.id_BytesPerBlock;
break;
case 1:
bas_o_ram[k]=(inf.id_NumBlocks-inf.id_NumBlocksUsed)*inf.id_BytesPerBlock;
break;
case 2:
all_o_ram[k]=inf.id_NumBlocks*inf.id_BytesPerBlock;
break;
}
if(all_o_ram[k]==0)
{
all_o_ram[k]=inf.id_NumBlocks*inf.id_BytesPerBlock;
bas_o_ram[k]=(inf.id_NumBlocks-inf.id_NumBlocksUsed)*inf.id_BytesPerBlock;
}
break;
}
}
FreeDeviceProc(devproc);
}
}
}
UnLockDosList(LDF_VOLUMES|LDF_DEVICES|LDF_READ);
}
}